﻿namespace DoNet.WechatPay.V2.Entitys.Requests
{
    public class PayRefundRequest : RequestBase
    {
        /// <summary>
        /// 微信订单号
        /// 否
        /// transaction_id、out_trade_no二选一，如果同时存在优先级：transaction_id> out_trade_no
        /// </summary>
        public string transaction_id { set; get; } = string.Empty;
        /// <summary>
        /// 商户订单号
        /// 否
        /// transaction_id、out_trade_no二选一，如果同时存在优先级：transaction_id> out_trade_no
        /// </summary>
        public string out_trade_no { set; get; } = string.Empty;
        /// <summary>
        /// 商户退款单号
        /// 是
        /// </summary>
        public string out_refund_no { set; get; } = string.Empty;
        /// <summary>
        /// 订单金额
        /// 是
        /// </summary>
        public long total_fee { set; get; }
        /// <summary>
        /// 申请退款金额
        /// 是
        /// </summary>
        public long refund_fee { set; get; }
        /// <summary>
        /// 退款货币种类
        /// 否
        /// 退款货币类型，需与支付一致，或者不填。符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型
        /// </summary>
        public string refund_fee_type { set; get; } = "CNY";
        /// <summary>
        /// 退款原因
        /// 否
        /// "若商户传入，会在下发给用户的退款消息中体现退款原因 注意：若订单退款金额≤1元，且属于部分退款，则不会在退款消息中体现退款原因"
        /// </summary>
        public string refund_desc { set; get; } = string.Empty;
        /// <summary>
        /// 退款资金来源
        /// 否
        /// "仅针对老资金流商户使用 REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款（默认使用未结算资金退款） REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款"
        /// </summary>
        public string refund_account { set; get; } = string.Empty;
        /// <summary>
        /// 退款结果通知url
        /// 否
        /// "异步接收微信支付退款结果通知的回调地址，通知URL必须为外网可访问的url，不允许带参数。公网域名必须为https，如果是走专线接入，使用专线NAT IP或者私有回调域名可使用http。如果参数中传了notify_url，则商户平台上配置的回调地址将不会生效。"
        /// </summary>
        public string notify_url { set; get; } = string.Empty;

    }
}
